UAS Visualisasi Data

Annisa Nur Cahyani-A3202300030

2025-01-29

Pengantar

Penggunaan ggplot2 dalam analisis data didasarkan pada fleksibilitas dan kekuatannya dalam membuat visualisasi data yang estetis, informatif, dan mudah disesuaikan. Dengan pendekatan berbasis Grammar of Graphics, ggplot2 memungkinkan pengguna untuk membangun grafik secara modular dengan menambahkan lapisan (layers) seperti titik, garis, atau teks, sehingga mempermudah eksplorasi hubungan antar variabel. Selain itu, ggplot2 mendukung berbagai jenis grafik, mulai dari grafik univariat seperti histogram, bivariat seperti scatter plot, hingga multivariat seperti heatmap, yang semuanya dapat dioptimalkan untuk analisis data. Library ini juga mendukung pengaturan estetika seperti warna, ukuran, dan tema secara detail, sehingga hasil visualisasi tidak hanya membantu analisis tetapi juga komunikatif dan menarik secara visual. Hal inilah yang menjadikan ggplot2 sebagai pilihan utama untuk analisis data di R.

data <- read.csv("data.csv")
Gambar
Gambar

Univat

# Histogram angka_harapan_hidup
library(ggplot2)

ggplot(data, aes(x = Angka_Harapan_Hidup)) +
  geom_histogram(binwidth = 5, fill = "#E5989B", color = "#B5828C") +
  labs(title = "Distribusi Angka Harapan Hidup", x = "Angka Harapan Hidup", y = "Frekuensi") +
  theme_minimal()

Bivariat

scatter plot

pendapatan_perkapita dan angka_harapan_hidup

# Memuat library
library(ggplot2)

# Menghitung total populasi per benua
total_population <- aggregate(Populasi ~ Benua, data = data, sum)

# Visualisasi dengan sumbu dibalik
ggplot(total_population, aes(y = Benua, x = Populasi, fill = Benua)) +
  geom_bar(stat = "identity") +
  labs(title = "Total Populasi Berdasarkan Benua",
       x = "Total Populasi",
       y = "Benua") +
  theme_minimal() +
  scale_fill_brewer(palette = "Pastel1")

Multivariat

suppressPackageStartupMessages(library(plotly))


# Membuat 3D scatter plot
plot_ly(data, x = ~Pendapatan_per_kapita, y = ~Angka_Harapan_Hidup, z = ~Populasi, 
        type = "scatter3d", mode = "markers", color = ~Benua) %>%
  layout(title = "3D Scatter Plot: Pendapatan Per Kapita vs Angka Harapan Hidup vs Populasi",
         scene = list(xaxis = list(title = 'Pendapatan Per Kapita'),
                      yaxis = list(title = 'Angka Harapan Hidup'),
                      zaxis = list(title = 'Populasi')))

interaktif

Scatter plot dengan animasi berdasarkan Tahun

library(plotly)
options(warn = -1)

fig <- plot_ly(data, 
               x = ~Pendapatan_per_kapita, 
               y = ~Angka_Harapan_Hidup, 
               size = ~Populasi, 
               color = ~Benua, 
               frame = ~Tahun, 
               text = ~paste("Negara:", Negara, 
                             "<br>Pendapatan:", Pendapatan_per_kapita, 
                             "<br>Harapan Hidup:", Angka_Harapan_Hidup, 
                             "<br>Populasi:", Populasi),
               type = 'scatter', 
               mode = 'markers') %>% 
  layout(title = "Perubahan Multivariat dari Tahun ke Tahun",
         xaxis = list(title = "Pendapatan Per Kapita"),
         yaxis = list(title = "Angka Harapan Hidup"))

fig
# Mengembalikan opsi peringatan ke normal
options(warn = 0)

Referensi